A collaboration manager is a program that facilitates communication between multiple application programs ("programs") stored on one or more computers. The programs may reside in computers that are remote from each other and differ in hardware construction and operating system software. The computers can be connected via a network, such as the Internet or a local area network during a "session". Consequently, these programs, which may have radically different input and output requirements, must share information through the manager to accomplish a specified task. The manager also coordinates activities of the collaborating programs. For example, a stock market trading program, running on a particular computer platform, may collaborate with a database program, running on a different computer platform, to obtain and then store the name and value of a stock on a selected day. After locating the stock name and daily value via a network (e.g., the Internet), the stock market trading program generates an output with the latter information and transmits the output to the collaboration manager. The manager then broadcasts the information to all computers having programs which are collaborating by means of the manager. These computers may be terminals that are remote from a server on which the manager runs. Once the output from the manager is received by the database program, it is converted into a form which is usable with the database program, and then stored in a database. The manager in this example therefore provides the mechanism for receiving output from a stock market trading program in one format, and directing that output to the database program.
Such collaborative systems are usually designed so that a message generated by one program is sent to the collaborative manager and the collaborative manager then broadcasts the messages to all programs participating in the session regardless of whether these programs need or can use the information. These regular broadcasts of the output of each program by the collaboration manager unnecessarily increase network congestion and can significantly affect system reliability and speed, especially when a large number of programs are connected in a single session.
Accordingly, it would be desirable to have a collaboration system which insures that each program obtains the message information that it requires, but which also minimizes the message traffic in the system.